﻿using System;
using System.Data;
using System.Linq;

namespace SCADA_DAQ.ZEMT.Server
{
    /// <summary>
    /// 工艺路线接收类
    /// </summary>
    //public class RotingManager: MqMangerBase<RotingManager>
    //{
    //    public override void Start()
    //    {
    //        DataReceive();
    //    }

    //    void DataReceive()
    //    {
    //        //工艺流程接口
    //        var res = mqhelper.TopicExchangeConsumer<ProdRotingInfo>((data) =>
    //        {
    //            SaveData(data);
    //            return true;
    //        }, "exchange.mes.roting", "queue.mes.roting", "queue.mes.roting");
    //    }

    //    /// <summary>
    //    /// b保存工艺
    //    /// </summary>
    //    /// <param name="prodRotingInfo"></param>
    //    private void SaveData(ProdRotingInfo prodRotingInfo)
    //    {
    //        try
    //        {
    //            var orderExtsis = Env.NPDAL.SCADA_Process.GetData($"\"Matid\" = \'{prodRotingInfo.ProductCode}\' and \"MBom\" = \'{prodRotingInfo.BomVersion}\'").DtToList<SCADA_Process>(true).FirstOrDefault();
    //            if (orderExtsis!=null)
    //            {
    //                return;
    //            }
    //            //var list = orderExtsis.DtToList<SCADA_Process>(true);
    //            SCADA_Process sCADA_Process = new SCADA_Process();
    //            var Matid = prodRotingInfo.ProductCode;
    //            var MBom = prodRotingInfo.BomVersion;
    //            var TechProcess = prodRotingInfo.RotingCode;
    //            var Small_Version = prodRotingInfo.Version;
    //            foreach (var process in prodRotingInfo.Processes)
    //            {
    //                var processName = process.Name;
    //                var processindex = process.Seq;
    //                var code = process.Code;
    //                var work_hour = process.Consuming ?? "0";
    //                foreach (var step in process.Steps)
    //                {
    //                    var jobstep = step.Name;
    //                    var stepcode = step.Code;
    //                    var scada_Process = new SCADA_Process();
    //                    scada_Process.Matid = Matid;
    //                    scada_Process.MBom = MBom;
    //                    scada_Process.TechProcess = TechProcess;
    //                    scada_Process.Small_Version = Small_Version;
    //                    scada_Process.Small_Version = Small_Version;
    //                    scada_Process.Disque_Name = processName;
    //                    scada_Process.Disque_Code = code;
    //                    scada_Process.JobStep_Code = step.Code;
    //                    scada_Process.Disque_Qty = System.Convert.ToInt32(processindex);
    //                    scada_Process.JobStep_id = System.Convert.ToInt32(step.StepIndex);
    //                    scada_Process.WorkHour_Num = work_hour.ObjToDecimal();
    //                   var processId = SubmitDB.SaveProcess(scada_Process);
    //                    foreach (var mat in step.Items)
    //                    {
    //                        var qty = (mat.Qty == null ? "0" : mat.Qty);
    //                        var matcode = mat.Code;
    //                        var matName = mat.Name;
    //                        var matStep = new SCADA_JobStep();
    //                        matStep.JobStep_Code_Str = stepcode;
    //                        matStep.JobStep_Str = jobstep;
    //                        matStep.Element_Type_Str = StepTypeCont.Material;
    //                        matStep.JobStep_Element_Str = matName;
    //                        matStep.Element_Code_Str = matcode;
    //                        matStep.Element_Qty_Int = System.Convert.ToInt32(qty);
    //                        matStep.IsScan_Int = mat.IsScan.ObjToShort();
    //                        matStep.Control_Mode = System.Convert.ToInt32(step.ControlMode);
    //                        matStep.ProcessId = processId;
    //                        matStep.Comment_Str = jobstep;
    //                        SubmitDB.SaveStep(matStep);
    //                    }
    //                    foreach (var tool in step.Tools)
    //                    {
    //                        var qty = (tool.UsedTimes == null ? "0" : tool.UsedTimes);
    //                        var matcode = tool.Code;
    //                        var matName = tool.Name;
    //                        var toolStep = new SCADA_JobStep();
    //                        toolStep.JobStep_Code_Str = stepcode;
    //                        toolStep.JobStep_Str = jobstep;
    //                        toolStep.Element_Type_Str = StepTypeCont.Tool;
    //                        toolStep.Element_Code_Str = tool.Code;
    //                        toolStep.JobStep_Element_Str = matName;
    //                        toolStep.Element_Qty_Int = System.Convert.ToInt32(qty);
    //                        toolStep.Control_Mode = System.Convert.ToInt32(step.ControlMode);
    //                        toolStep.ProcessId = processId;
    //                        toolStep.Comment_Str = jobstep;
    //                        SubmitDB.SaveStep(toolStep);
    //                    }
    //                    foreach (var file in step.Files)
    //                    {
    //                        var fileStep = new SCADA_JobStep();
    //                        fileStep.JobStep_Code_Str = stepcode;
    //                        fileStep.Element_Type_Str = StepTypeCont.File;
    //                        fileStep.JobStep_Str = file.FileName;
    //                        fileStep.Element_Version_Str = file.Content;
    //                        fileStep.Control_Mode = System.Convert.ToInt32(step.ControlMode);
    //                        fileStep.ProcessId = processId;
    //                        fileStep.Comment_Str = jobstep;
    //                        SubmitDB.SaveStep(fileStep);
    //                    }
    //                    if (step.Details != null)
    //                    {
    //                        foreach (var detail in step.Details)
    //                        {
    //                            var detailStep = new SCADA_JobStep();
    //                            detailStep.JobStep_Code_Str = stepcode;
    //                            detailStep.JobStep_Str = detail.Description;
    //                            detailStep.Element_Type_Str = StepTypeCont.Detail;
    //                            detailStep.ProcessId = processId;
    //                            detailStep.Comment_Str = jobstep;
    //                            SubmitDB.SaveStep(detailStep);
    //                        }
    //                    }
    //                    if(step.Quos != null)
    //                    {
    //                        foreach (var item in step.Quos)
    //                        {
    //                            var quo = new SCADA_JobStep();
    //                            quo.JobStep_Code_Str = stepcode;
    //                            quo.JobStep_Str = item.Description;
    //                            quo.remark_Str = item.Remark;
    //                            quo.Element_Type_Str = StepTypeCont.Quo;
    //                            quo.ProcessId = processId;
    //                            quo.Comment_Str = jobstep;
    //                            SubmitDB.SaveStep(quo);
    //                        }
    //                    }
    //                }
    //            }
    //        }
    //        catch (Exception ex)
    //        {
    //            System.Diagnostics.Trace.WriteLine($"保存数据出错:{ex.Message}");
    //        }
    //    }

      
    //}
}
